#ifndef __SIMHASH_HPP
#define __SIMHASH_HPP

// this define can avoid some logs which you don't need to care about.
#define LOGGER_LEVEL LL_WARN

#include "FileProcessor.hpp"
#include "simhash/Simhasher.hpp"

#include <iostream>
#include <fstream>

// using namespace simhash;

using std::map;

class Deduplication
{
public:
    Deduplication(const std::map<string, string> &configMap);
    vector<string> wordSeg(const string str, size_t topN);
    vector<processedFile> deduplicate(vector<processedFile> &proFiles, std::map<int, uint64_t> u);
    void operator()(vector<processedFile> &proFiles, size_t topN);

private:
    simhash::Simhasher _simhasher;
};

#endif